package org.hy.persistence;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.hy.domain.MyStatus;
import org.hy.domain.MyStatusComment;

/**
 * 我的状态映射器
 * @author Administrator
 *
 */
public interface MyStatusMapper {

	/**
	 * 添加我的状态
	 * @param myStatus 状态对象
	 * @return
	 */
	int insertMyStatus(MyStatus myStatus);
	
	/**
	 *  添加我的状态评论
	 * @param myStatusComment
	 * @return
	 */
	int insertMyStatusComment(MyStatusComment myStatusComment);
	
	/**
	 * 删除我的状态
	 * @param id 我的状态id
	 * @return
	 */
	int deleteMyStatus(int id);
	/**
	 * 删除我的状态评论id
	 * @param id
	 * @return
	 */
	int deleteMyStatusComment(int id);
	
	/**
	 *  分页查找我的状态评论
	 * @param id 我的状态id
	 * @param offset 偏移量
	 * @param limit 记录数
	 * @return 带评论列表的我的状态对象
	 */
	MyStatus findMyStatusWithCommentsById(@Param("id") int id,@Param("offset")int offset,@Param("size")int limit);
	
	/**
	 * 查找我的状态评论,每个状态带有两条评论。
	 * @param uid 用户id
	 * @return
	 */
	List<MyStatus> findMyStatusWithDefaultCommentsByUid(int uid);
	
	/**
	 * 查找我的状态
	 * @param id 状态id
	 * @return
	 */
	MyStatus findMyStatusById(int id);
	
	/**
	 * 分页查找用户的状态列表
	 * @param uid 用户id
	 * @param offset 偏移量
	 * @param size 记录数
	 * @return 状态列表
	 */
	
	List<MyStatus> findMyStatusWithCommentsByUid(@Param("uid") int uid,@Param("offset")int offset,@Param("size")int size);
	
	/**
	 * 获取我的状态评论数
	 * @param myStatusIds 我的状态id数组
	 * @return 每条状态对应的评论数.
	 */
	List<Integer> countMyStatusComment(Integer[] myStatusIds);
	//Map countMyStatusComment(Integer[] myStatusIds);
}
